<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>FileReader Errors Test</title>
    <link rel=help href="http://dev.w3.org/2006/webapi/FileAPI/#convenienceAPI">
    <link rel=author title="Breezewish" href="mailto:me@breeswish.org">
    <script src="/resources/testharness.js"></script>
    <script src="/resources/testharnessreport.js"></script>
</head>
<body>
    <form name="upload">
        <input type="file" id="fileChooser"><br><input type="button" id="start" value="start">
    </form>

    <div>
        <p>Test steps:</p>
        <ol>
            <li>Download the <a href="support/file_test1.txt">file</a>.</li>
            <li>Select the file in the file inputbox.</li>
            <li>Delete the file.</li>
            <li>Click the 'start' button.</li>
        </ol>
    </div>

    <div id="log"></div>

    <script>

        var fileChooser = document.querySelector('#fileChooser');

        setup({explicit_done: true});
        setup({explicit_timeout: true});

        on_event(fileChooser, 'change', function() {

            async_test(function(t) {

                var reader = new FileReader();
                reader.readAsArrayBuffer(fileChooser.files[0]);

                reader.onloadend = t.step_func_done(function(event) {
                    assert_equals(event.target.readyState, FileReader.DONE);
                    assert_equals(reader.error, null);
                });

            }, 'FileReader.error should be null if there are no errors when reading');

        });

        on_event(document.querySelector('#start'), 'click', function() {

            async_test(function(t) {

                var reader = new FileReader();
                reader.readAsArrayBuffer(fileChooser.files[0]);

                reader.onloadend = t.step_func_done(function(event) {
                    assert_equals(event.target.readyState, FileReader.DONE);
                    assert_equals(reader.error.code, 8);
                    assert_true(reader.error instanceof DOMException);
                });

            }, 'FileReader.error should be NOT_FOUND_ERR if the file is not found when reading');

            done();

        });

    </script>
</body>
</html>
